package cz.matasek.dbLogger.sql;

/**
 * List of SQL used in the application.
 *
 * @author Luboš Matásek
 */
public enum SqlStatementType {

    /**
     * Has function.
     */
    HAS_FUNCTION,
    /**
     * Create prefix function.
     */
    CREATE_PREFIX_FUNCTION,
    /**
     * Drop prefix function.
     */
    DROP_PREFIX_FUNCTION,
    /**
     * Get prefix.
     */
    GET_PREFIX,
    /**
     * Has sequence.
     */
    HAS_SEQUENCE,
    /**
     * Create sequence.
     */
    CREATE_LOGGING_SEQUENCE,
    /**
     * Drop sequence.
     */
    DROP_LOGGING_SEQUENCE,
    /**
     * Has table.
     */
    HAS_TABLE,
    /**
     * Create logging table.
     */
    CREATE_LOGGING_TABLE,
    /**
     * Create logging table trigger.
     */
    CREATE_LOGGING_TABLE_TRIGGER,
    /**
     * Drop logging table.
     */
    DROP_LOGGING_TABLE,
    /**
     * Get tables.
     */
    GET_TABLES,
    /**
     * Get columns.
     */
    GET_COLUMNS,
    /**
     * Create logging trigger.
     */
    CREATE_LOGGING_TRIGGER,
    /**
     * Logging trigger loop.
     */
    LOGGING_TRIGGER_LOOP,
    /**
     * Has trigger.
     */
    HAS_TRIGGER,
    /**
     * Drop logging trigger.
     */
    DROP_LOGGING_TRIGGER,
    /**
     * Create history columns.
     */
    CREATE_HISTORY_COLUMNS,
    /**
     * Drop history columns.
     */
    DROP_HISTORY_COLUMNS,
    /**
     * Has column.
     */
    HAS_COLUMN,
    /**
     * Create history table.
     */
    CREATE_HISTORY_TABLE,
    /**
     * Drop history table.
     */
    DROP_HISTORY_TABLE,
    /**
     * History trigger loop.
     */
    HISTORY_TRIGGER_LOOP,
    /**
     * Create history trigger.
     */
    CREATE_HISTORY_TRIGGER,
    /**
     * Drop history trigger.
     */
    DROP_HISTORY_TRIGGER,
    /**
     * Get historical table content.
     */
    GET_HISTORICAL_TABLE_CONTENT,
    /**
     * Get logging table content.
     */
    GET_LOGGING_TABLE_CONTENT,
    /**
     * Get trigger events.
     */
    GET_TRIGGER_EVENTS,
    /**
     * Get logged columns.
     */
    GET_LOGGED_COLUMNS,
    /**
     * Get users.
     */
    GET_USERS;

    /**
     * Returns string representation for the SQL statement type.
     *
     * @return string representation for the SQL statement type
     */
    @Override
    public String toString() {
        return this.name().toLowerCase();
    }
}
